package org.wendu.wdoa.newassi.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.wendu.wdoa.common.TrStatusEnum;
import org.wendu.wdoa.common.page.PageParam;
import org.wendu.wdoa.common.page.PageUtils;
import org.wendu.wdoa.newassi.dao.TaskNewassiDao;
import org.wendu.wdoa.newassi.dto.TaskAddDto;
import org.wendu.wdoa.newassi.dto.TaskNewassiQueryDto;
import org.wendu.wdoa.newassi.dto.TaskRecDto;
import org.wendu.wdoa.newassi.service.TaskNewassiService;

import java.util.Date;
import java.util.Map;
@Service
public class TaskNewassiServiceImpl implements TaskNewassiService {

    @Autowired
    private TaskNewassiDao taskNewassiDao;
    @Override
    public Map<String, Object> findLeaderTaskList(String userId, PageParam pageParam) {
        return PageUtils.getPage(pageParam,()->taskNewassiDao.getLeaderTaskList(userId,pageParam));
    }

    @Override
    public void addNewTask(String userId, TaskAddDto taskAddDto) {
        String  newId = taskNewassiDao.findNewId();
        taskAddDto.setTask_id(newId);
        taskAddDto.setLeader_id(userId);
        taskAddDto.setTask_date(new Date());
        taskNewassiDao.InsertTask(userId,taskAddDto);
    }

    @Override
    public Map<String, Object> findDepEmpList(String userId, PageParam pageParam) {
        return PageUtils.getPage(pageParam,()->taskNewassiDao.getDepEmpTaskList(userId,pageParam));
    }

    @Override
    public void addEmpDepTaskMultiById(String[] eids, TaskRecDto taskRecDto,String task_id) {

        for (String eid:eids) {
            String  newId = taskNewassiDao.findEmpDepTaskNewId();
            taskRecDto.setTr_id(newId);
            taskRecDto.setTr_assign_date(new Date());
            taskRecDto.setTr_status(TrStatusEnum.TR_STATUS_SUBMITED.getCode());
            taskNewassiDao.addEmpDepTaskMulti(eid,taskRecDto,task_id);
        }
    }

    @Override
    public void updateTask(TaskNewassiQueryDto taskNewassiQueryDto) {
        taskNewassiDao.updateTaskInfomation(taskNewassiQueryDto);
    }

    @Override
    public void queDingTask(TaskNewassiQueryDto taskNewassiQueryDto) {
        taskNewassiDao.queDingTaskInformation(taskNewassiQueryDto);
    }
}
